草庐IT

php - Laravel hasMany 和 belongsTo 参数

全部标签

c# - 如何在堆栈跟踪中获取参数值

我可以通过StackTrace使用如下方式获取有关参数的信息:catch(Exceptionex){varst=newStackTrace(ex);System.Reflection.ParameterInfopi=st.GetFrame(0).GetMethod().GetParameters().First();}我想知道如何获取参数的值。示例:如果我在堆栈跟踪中的方法是这样的:voidMyMethod(objectvalue)电话是这样的:MyMethod(10);我想得到值10。我该怎么做? 最佳答案 有两种方法。更强大的是

c# - C# lambda 表达式的参数类型推断中的歧义

我的问题是由EricLippert的thisblogpost提出的.考虑以下代码:usingSystem;classProgram{classA{}classB{}staticvoidM(Ax,By){Console.WriteLine("M(A,B)");}staticvoidCall(Actionf){f(newA());}staticvoidCall(Actionf){f(newB());}staticvoidMain(){Call(x=>Call(y=>M(x,y)));}}编译成功并打印M(A,B),因为编译器计算出x的类型和y在lambda表达式中应该是A和B分别。现在,为

c# - 具有泛型参数和抽象类的泛型

我有两个通用基类。第二个泛型类对第一个类的参数有约束。abstractclassFirstClass{...}abstractclassSecondClasswhereU:FirstClass{...}这不起作用,因为未定义FirstClass。所以我需要这样做。abstractclassFirstClass{...}abstractclassSecondClasswhereU:FirstClass{...}哪个有效。然而,这使得实现这些抽象类变得很丑陋。classSomeClass{...}classMyFirstClass:FirstClass{...}classMySecondC

c# - C# 函数参数中的方括号语法?

我正在学习ASP.NET并偶然发现了这个方法声明:publicIQueryableGetProducts([QueryString("id")]int?categoryId){.....}教程说categoryId将等于查询字符串“id”(来自URL,如&id=5)但问题是什么是[QueryString("id")]调用的语法?它可以在ASP.NET之外使用吗?它的应用是什么? 最佳答案 那是应用QueryStringAttribute属性到参数categoryId。它只是一个属性,就像您可能更习惯在方法或类上看到的属性一样,如下所

c# - 实例变量与参数传递?有争论吗?

所以,我最近一直致力于重构一些遗留代码,并且发现自己质疑我所做的一些重构决策的有效性。一个这样的查询是关于使用实例变量在对象内的方法之间共享对象。具体来说,在许多地方,构造函数和方法已被拆分,局部变量被提升为实例变量,从而允许从现在独立的方法进行访问。在我看来,这似乎是错误的。它破坏了封装,改变了范围并可能影响生命周期,但是,其中一些类与性能相关,因此我想知道重构这些方法以使用参数传递代替的含义是什么?更重要的是,我想知道我的假设是否站得住脚?在私有(private)方法之间共享时,对象的参数传递是否优于实例变量? 最佳答案 我绝对

c# - 对多参数函数使用 Math.NET 的 Fit.Polynomial 方法

我以前使用Math.NET数值库的Fit.Polynomial在一组数据上拟合三次多项式的方法,这些数据可以建模为一个参数y=f(x)的函数。现在我想类似地找到一个2或3阶多项式来拟合数据,这些数据可以根据多个参数y=f(x1,x2,x3,x4)建模为函数。Math.NET中是否已经有可以计算该多项式的内置函数?如果没有,您是否看到我如何处理我的数据以将其提交给Fit.Polynomial? 最佳答案 Fit类只是一个外观,在大多数情况下都足够好,但您始终可以直接使用算法来准确获得所需的内容。Fit.Polynomial:高阶多项式

c# - 在哪里验证方法的参数?

我想知道,在代码中验证方法参数的位置和频率。在下面的示例类(.dll库)中,您认为最好的方法是什么?假设我想验证某些对象不能为null(但它可以是方法正常运行所需的任何其他验证)。最好只在第1点检查一次,在用户可用的公共(public)方法中,然后“相信自己”,在其他私有(private)方法中,它不会为空,或者最好有点偏执,每次检查一次它将被使用的时间(在第2、3和4点中)在使用对象之前检查它(第2、3、4点)可以保护我将来,如果我决定更改类中的某些内容,使用这些私有(private)方法并“忘记”传递有效对象。如果我将来添加一些新的公共(public)方法,我也不必记住验证。另一方

c# - “不要公开通用列表”,为什么在方法参数中使用 collection<T> 而不是 list<T>

我正在使用FxCop,它显示“不要公开通用列表”的警告,建议使用Collection而不是List.首选它的原因,我知道所有这些东西,如thisSOpost中所述和MSDN以及我浏览过的更多文章。但我的问题是,我很少有方法可以进行如此繁重的计算,并且方法接受List的参数。就性能而言,这应该更快更好。但是FxCop也为此发出警告。所以一个选择是我应该将参数声明为Collection,然后使用ToList()在方法内部,然后使用它。那么优化了哪一个呢?“抑制这种情况下的警告”或“在参数中使用Collection,然后在方法本身内部使用ToList()”。 最佳

c# - 如果参数值为 null,则传递字符串

我需要在一个函数中传递多个参数。我的要求是参数值不能为NULL。如果参数为NULL,改为传递“TBD”。例如getBookInfo(stringbookId,stringbookName,stringbookAuthor)//ifanyoftheparametersisNULL,pass"TBD"stringinparameter我该怎么做?我可以使用三元运算符来做到这一点吗?如果可以,怎么做? 最佳答案 在调用您的方法时尝试这样做:getBookInfo(bookId??"TBD",bookName??"TBD",bookAuth

c# - 如何向 PostSharp 属性添加参数?

我有一个简单的PostSharp日志属性:[Serializable]publicclassMethodLoggingAttribute:OnMethodBoundaryAspect{privateILog_logger;publicoverridevoidOnEntry(MethodExecutionEventArgseventArgs){_logger=LogManager.GetLogger(eventArgs.Method.DeclaringType.ToString());_logger.DebugFormat("Entered{0}",eventArgs.Method.Na